/**
 * 
 arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
 callback
为数组中每个元素执行的函数，该函数接收一至三个参数：
currentValue
数组中正在处理的当前元素。
index 可选
数组中正在处理的当前元素的索引。
array 可选
forEach() 方法正在操作的数组。
thisArg 可选
可选参数。当执行回调函数 callback 时，用作 this 的值。
 */
Array.prototype.myforEach=function(callback,context){
    if((typeof callback!=="function")||!this){
        throw new TypeError;
    }
    let O=Object(this);
    let len=O.length>>>0;
    for(let i=0;i<len;i++){
        callback.call(context,this[i],i,this);
    }
}

var arr=[1,2,3];
arr.myforEach(item=>console.log(item))